In high transaction volume computer systems, there has been a shift in system design to build enterprise applications around in-memory data stores to avoid latency issues encountered when storing data to disks. In-memory data stores can provide data grids (e.g., a data caching scheme) which allow database like functionality on these in-memory data stores.
Data security for in-memory data stores is important, and becomes even more important in a cloud based deployment where the same data grid is shared across multiple tenants using the same instance of an application.
Multi-tenancy refers to a principle in software architecture where a single instance of the software runs on a server, serving multiple client-organizations (tenants). Multi-tenancy contrasts with multi-instance architectures where separate software instances (or hardware systems) operate on behalf of different client organizations. With a multitenant architecture, a software application is designed to virtually partition its data and configuration, and each client organization works with a customized virtual application.
Typically, with multi-tenancy as a feature of a persistence store such as a database, separate schemas are created for each customer that can only be accessed by the credentials specific to that customer.